package com.dragon.modules.yuegou.model.member;

import com.dragon.modules.yuegou.entity.member.PtTurntableEntity;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 积分大转盘表模型类
 *
 * @author pbuilder generated
 * @version 2.0
 * @date 2021-12-16 19:20:45
 * @company sgy
 * @see Length 长度限制
 * @see NotNull 对象非空
 * @see NotEmpty 字符串、集合、表、数组非空
 */
public class PtTurntableXcx extends PtTurntableEntity {

    @ApiModelProperty("奖品列表")
    private List<PtTurntablePrize> prizeList;
    
    @ApiModelProperty("奖品剩余总数")
    private Integer totalCount;

    public List<PtTurntablePrize> getPrizeList() {
        return prizeList;
    }

    public void setPrizeList(List<PtTurntablePrize> prizeList) {
        this.prizeList = prizeList;
    }
       
    public Integer getTotalCount() {
		return totalCount;
	}

	public void setTotalCount(Integer totalCount) {
		this.totalCount = totalCount;
	}

	/**
     * 构造一个空积分大转盘表模型对象
     */
    public PtTurntableXcx() {
        super();
    }

    /**
     * 依据实体对象的信息构造一个积分大转盘表模型对象
     *
     * @param entity 实体对象
     */
    public PtTurntableXcx(PtTurntableEntity entity) {
        super(entity);
    }

    /**
     * 依据其它对象的信息构造一个积分大转盘表模型对象
     *
     * @param other 其它对象
     */
    public PtTurntableXcx(PtTurntableXcx other) {
        super(other);
    }


    @Override
    public String getId() {
        return id;
    }

    /**
     * 设置id
     *
     * @param id id
     * @return 当前对象
     */
    public PtTurntableXcx id(String id) {
        this.id = id;
        return this;
    }

    @Override
    public String getBusdId() {
        return busdId;
    }

    /**
     * 设置商圈id
     *
     * @param busdId 商圈id
     * @return 当前对象
     */
    public PtTurntableXcx busdId(String busdId) {
        this.busdId = busdId;
        return this;
    }

    @Override
    public String getTitle() {
        return title;
    }

    /**
     * 设置抽奖标题
     *
     * @param title 抽奖标题
     * @return 当前对象
     */
    public PtTurntableXcx title(String title) {
        this.title = title;
        return this;
    }

    @Override
    public LocalDateTime getStartTime() {
        return startTime;
    }

    /**
     * 设置开始时间
     *
     * @param startTime 开始时间
     * @return 当前对象
     */
    public PtTurntableXcx startTime(LocalDateTime startTime) {
        this.startTime = startTime;
        return this;
    }

    @Override
    public LocalDateTime getEndTime() {
        return endTime;
    }

    /**
     * 设置结束时间
     *
     * @param endTime 结束时间
     * @return 当前对象
     */
    public PtTurntableXcx endTime(LocalDateTime endTime) {
        this.endTime = endTime;
        return this;
    }

    @Override
    public String getPrizeContent() {
        return prizeContent;
    }

    /**
     * 设置中奖文案
     *
     * @param prizeContent 中奖文案
     * @return 当前对象
     */
    public PtTurntableXcx prizeContent(String prizeContent) {
        this.prizeContent = prizeContent;
        return this;
    }

    @Override
    public String getPrizeRepeatContent() {
        return prizeRepeatContent;
    }

    /**
     * 设置重复中奖文案
     *
     * @param prizeRepeatContent 重复中奖文案
     * @return 当前对象
     */
    public PtTurntableXcx prizeRepeatContent(String prizeRepeatContent) {
        this.prizeRepeatContent = prizeRepeatContent;
        return this;
    }

    @Override
    public String getMissPrizeContent() {
        return missPrizeContent;
    }

    /**
     * 设置未中奖文案
     *
     * @param missPrizeContent 未中奖文案
     * @return 当前对象
     */
    public PtTurntableXcx missPrizeContent(String missPrizeContent) {
        this.missPrizeContent = missPrizeContent;
        return this;
    }

    @Override
    public Integer getConsumePoint() {
        return consumePoint;
    }

    /**
     * 设置消耗积分
     *
     * @param consumePoint 消耗积分
     * @return 当前对象
     */
    public PtTurntableXcx consumePoint(Integer consumePoint) {
        this.consumePoint = consumePoint;
        return this;
    }

    @Override
    public Integer getMaxCount() {
        return maxCount;
    }

    /**
     * 设置中奖最大次数
     *
     * @param maxCount 中奖最大次数
     * @return 当前对象
     */
    public PtTurntableXcx maxCount(Integer maxCount) {
        this.maxCount = maxCount;
        return this;
    }

    @Override
    public Integer getMaxExtractCount() {
        return maxExtractCount;
    }

    /**
     * 设置每人每天抽奖次数
     *
     * @param maxExtractCount 每人每天抽奖次数
     * @return 当前对象
     */
    public PtTurntableXcx maxExtractCount(Integer maxExtractCount) {
        this.maxExtractCount = maxExtractCount;
        return this;
    }

    @Override
    public String getExplain() {
        return explain;
    }

    /**
     * 设置抽奖规则说明
     *
     * @param explain 抽奖规则说明
     * @return 当前对象
     */
    public PtTurntableXcx explain(String explain) {
        this.explain = explain;
        return this;
    }

    @Override
    public BigDecimal getGainProbability() {
        return gainProbability;
    }

    /**
     * 设置中奖概率
     *
     * @param gainProbability 中奖概率
     * @return 当前对象
     */
    public PtTurntableXcx gainProbability(BigDecimal gainProbability) {
        this.gainProbability = gainProbability;
        return this;
    }

    @Override
    public BigDecimal getMissProbability() {
        return missProbability;
    }

    /**
     * 设置不中奖概率
     *
     * @param missProbability 不中奖概率
     * @return 当前对象
     */
    public PtTurntableXcx missProbability(BigDecimal missProbability) {
        this.missProbability = missProbability;
        return this;
    }

    @Override
    public String getIndexIcon() {
        return indexIcon;
    }

    /**
     * 设置入口图标
     *
     * @param indexIcon 入口图标
     * @return 当前对象
     */
    public PtTurntableXcx indexIcon(String indexIcon) {
        this.indexIcon = indexIcon;
        return this;
    }

    @Override
    public String getTurntableTopImg() {
        return turntableTopImg;
    }

    /**
     * 设置顶部图
     *
     * @param turntableTopImg 顶部图
     * @return 当前对象
     */
    public PtTurntableXcx turntableTopImg(String turntableTopImg) {
        this.turntableTopImg = turntableTopImg;
        return this;
    }

    @Override
    public String getTurntableActImg() {
        return turntableActImg;
    }

    /**
     * 设置活动背景图
     *
     * @param turntableActImg 活动背景图
     * @return 当前对象
     */
    public PtTurntableXcx turntableActImg(String turntableActImg) {
        this.turntableActImg = turntableActImg;
        return this;
    }

    @Override
    public String getTurntableBackImg() {
        return turntableBackImg;
    }

    /**
     * 设置转盘背景图
     *
     * @param turntableBackImg 转盘背景图
     * @return 当前对象
     */
    public PtTurntableXcx turntableBackImg(String turntableBackImg) {
        this.turntableBackImg = turntableBackImg;
        return this;
    }

    @Override
    public Boolean getEnableStatus() {
        return enableStatus;
    }

    /**
     * 设置启用状态
     *
     * @param enableStatus 启用状态
     * @return 当前对象
     */
    public PtTurntableXcx enableStatus(Boolean enableStatus) {
        this.enableStatus = enableStatus;
        return this;
    }

    @Override
    public LocalDateTime getCreatedTime() {
        return createdTime;
    }

    /**
     * 设置
     *
     * @param createdTime
     * @return 当前对象
     */
    public PtTurntableXcx createdTime(LocalDateTime createdTime) {
        this.createdTime = createdTime;
        return this;
    }

    @Override
    public String getCreatedBy() {
        return createdBy;
    }

    /**
     * 设置
     *
     * @param createdBy
     * @return 当前对象
     */
    public PtTurntableXcx createdBy(String createdBy) {
        this.createdBy = createdBy;
        return this;
    }

    @Override
    public LocalDateTime getModifiedTime() {
        return modifiedTime;
    }

    /**
     * 设置
     *
     * @param modifiedTime
     * @return 当前对象
     */
    public PtTurntableXcx modifiedTime(LocalDateTime modifiedTime) {
        this.modifiedTime = modifiedTime;
        return this;
    }

    @Override
    public String getModifiedBy() {
        return modifiedBy;
    }

    /**
     * 设置
     *
     * @param modifiedBy
     * @return 当前对象
     */
    public PtTurntableXcx modifiedBy(String modifiedBy) {
        this.modifiedBy = modifiedBy;
        return this;
    }

    @Override
    public Boolean getDel() {
        return del;
    }

    /**
     * 设置删除 0-未删除；1-已删除
     *
     * @param del 删除 0-未删除；1-已删除
     * @return 当前对象
     */
    public PtTurntableXcx del(Boolean del) {
        this.del = del;
        return this;
    }

    @Override
    public LocalDateTime getDelTime() {
        return delTime;
    }

    /**
     * 设置
     *
     * @param delTime
     * @return 当前对象
     */
    public PtTurntableXcx delTime(LocalDateTime delTime) {
        this.delTime = delTime;
        return this;
    }

    @Override
    public String getDelBy() {
        return delBy;
    }

    /**
     * 设置
     *
     * @param delBy
     * @return 当前对象
     */
    public PtTurntableXcx delBy(String delBy) {
        this.delBy = delBy;
        return this;
    }
}
